The invention pertains to the field of initiating calls or sessions in communications networks.
In systems providing communications services, it is known to distribute requests for services among a plurality of service providing entities, such as servers or individual processors within a server. The individual servers or processors perform the bulk of the processing and data transfer associated with the sessions, and the overall system is designed to achieve a desired balance of cost and performance for a desired capacity. However, one performance bottleneck that has remained in such systems is the entity responsible for assigning the service requests among the servers or processors. In some cases, the volume of signaling traffic or “session dialogs” associated with a large number of service requests can slow down the performance of a system even when there are sufficient processing resources for handling the intra-session activities of all requested sessions.
To address the performance issues associated with handling session dialogs, it has been known to utilize so-called “proxy servers” in systems having a distributed service architecture. For example, in systems utilizing the Session Initiation Protocol (SIP), a SIP proxy server contains information identifying alternative servers that are available to handle service requests. For each request, the proxy server selects a server to handle the request, re-formats the request message from the requester, and sends the re-formatted request to the selected server. All subsequent traffic between the requester and selected server flows through the proxy server. Although this arrangement has the benefit that all requesters see only a single point of service, the proxy server(s) can easily become bottlenecks that reduce performance. Additionally, the proxy server(s) add to overall system cost.
Another mechanism employed in certain systems, including SIP-based systems, is the use of a “redirect” message. Using such a message, the recipient of a session initiation message explicitly signals a session initiator to redirect its session initiation request to another server. While such redirection has the benefit that the initial recipient retains no state information about the request nor is involved in subsequent session data transfers, it unfortunately causes a significant increase (substantially double) in session signaling traffic. This increase in signaling traffic can lead to undesirable communications and processing bottlenecks.
It would be desirable to provide for the distribution of session initiation requests among a plurality of servers and/or processors in a manner that is transparent to session initiators and that provides for high throughput of signaling traffic in a scalable fashion.